Infrared (IR) remote control devices (or remote controls) are known, and can be used to control electronic appliances such as televisions, video recorders, stereo systems, set-top boxes, personal computers etc. For example, wireless keyboards and wireless mice can be used to operate a personal computer.
Infrared data transmission in such remote control devices is typically achieved by alternating an Infrared Light Emitting Diode (LED) between two states (i.e., an OFF state and an ON state). In the OFF state, the LED is kept powered down and in the ON state, the LED is rapidly powered on and off at a predetermined frequency. This predetermined frequency is known as the ‘carrier frequency’.
Several methods can be used to encode data based on the above-mentioned ON and OFF states. One such method is referred to as ‘pulse code modulation’, where each bit of a data transmission is encoded by a fixed length duration in one of the two states. Typically, the OFF state represents a ‘1’ bit, and the ON state represents a ‘0’ bit. Another method of encoding data is referred to as ‘pulse frequency modulation’ where each symbol consists of an ON pulse followed by an OFF pulse. The length of the ON pulse is static while the length of the OFF pulse varies depending on the value of the symbol. Still another method of encoding data based on the above-mentioned two states is referred to as ‘pulse position modulation’ where each symbol is encoded by the position of an ON pulse within a longer, fixed length, OFF period. One variation of the pulse position modulation is referred to as ‘four pulse position modulation, where the ON pulse can occur in one of four positions, thus encoding two bits per data symbol.
Most protocols for infrared transmission utilize a carrier frequency within the range of 32 to 56 kHz. Such protocols also vary in message format, according to the presence and size of data bits, device identifier bits, parity and check bits, sequence bits and start/stop conditions. Remote controlled appliances are typically designed to operate using one particular protocol, and are generally supplied with a remote control device designed to work specifically with that appliance. As a result, many households have several remote control devices to operate individual devices within the same room.
One known method for alleviating the need for different remote control devices for each particular appliance is to combine the functionality of all such remote control devices into one “universal” remote control device. The simplest type of universal remote control device is nothing more than a single remote control device capable of controlling more than one type of appliance. However, such a remote control device adds the demand that all appliances controlled by the remote control device must use the protocol used by the remote control device. In many cases, various appliances are purchased from different manufacturers and vendors. Thus, a particular universal remote control device will generally be unable to control all such appliances.
A reconfigurable remote control device is an advanced version of a universal remote control device, where the functionality of at least some input keys of the remote control device can be reconfigured after the remote control device has been purchased. One such reconfigurable remote control device transmits data using only one protocol. However, the input keys of the remote control device can be reconfigured with different codes as required. Other reconfigurable remote control devices can be configured to transmit data using one of several known protocols.
Most conventional universal remote control devices utilize a keyboard method of input data entry. Some additionally use liquid crystal displays (LCD) in order to provide feedback to the user, such as indicating the current function of certain keys.
Some universal remote control devices provide a touch-sensitive LCD to replace at least some portion of a keyboard configured on the remote control device. However, most retain at least several “hard” keys. The LCD provides the opportunity for a user or manufacturer to customize not only the functions provided by the remote control device, but also the method of interfacing used by the remotely controlled appliance or device itself.
While some reconfigurable remote control devices can only be reconfigured using a limited range of protocols and codes known by each particular remote control device, there are several known methods that can be employed to load additional protocols onto such remote control devices. One such method is commonly referred to as ‘learning’. One universal remote control device, which utilizes the learning method, is equipped with a receiver, configured to detect transmissions by other remote control devices. In order to program a code onto this universal remote control device, the user must select “learning mode” on the remote control device (i.e., the learning remote control device), and then use another remote control device which already knows the particular code to transmit the required code to the learning remote control device. The learning universal remote control device then stores a representation of the received code in an on-board memory device, ready to be played back at a later stage.
The main disadvantage of the above ‘learning’ method is that programming the remote control device using the method is tedious and time consuming since a lot of keys need to be pressed. Additionally, a user must also have another pre-configured remote control device available in order to provide all of the codes to program onto the learning remote control device. If a new universal remote control device is purchased at a later date, the learning process has to be repeated again. Further, if the codes to be learned contain data that varies from message to message, such as sequence bits or numbers, then a remote control device using the learning method is not always able to recognise such sequence bits. Thus, these bits are not able to be reproduced in the correct manner, by the remote control device, when re-transmitting the codes.
Another known method of reconfiguring a remote control device provides the remote control device with the ability to read data from a removable storage medium, such as a control card or smart card. The card has sets of code data and programming stored thereon. The code data is configured to allow the remote control device to operate various appliances (e.g. a television, VCR, cable box, Internet access device or other electronic device). The remote control device is provided or sold to a user essentially “empty” of such code data. The card allows a one-time transfer of a single device code (i.e., code data needed to remotely operate a particular electronic device) from the card into on-board, non-volatile memory of the remote control device. However, such a remote control device is limited as to the number of device codes that can be stored in the non-volatile memory. Further, these stored device codes cannot be easily changed or replaced once the device codes have been loaded into the non-volatile memory. Still further, the user interface of such a remote control device is fixed and cannot be readily changed according to the circumstances of use. In the reconfiguring methods described above, several disadvantages are evident. Firstly, a lot of data is required to program a universal remote control device with a particular range of functions that is required to operate a number of appliances remotely. Such data is required since each button of a universal remote control device typically describes an entire transmission sequence for the particular button at a low level, leading to a lot of data repetition and redundancy. The data repetition and redundancy raises the cost of manufacturing and purchasing such a remote control device since faster processors, more memory and more powerful batteries must be used to power such remote control devices. Secondly, the user interface of a keypad based universal remote control device is fixed, and cannot be readily changed according to the circumstances of use. Thirdly, software code stored on universal remote control devices cannot be easily changed.
Some reconfigurable remote control devices are pre-configured to have existing functions or protocols activated infrequently. For example, a function may be activated on such a remote control device upon purchase of the remote control device. One such remote control device utilizes a bar code displayed on an appliance in a location that is accessible to the remote control device. The remote control device is equipped with a bar code reader and upon reading a bar code from the appliance corresponding to a known configuration, the remote control device is reconfigured to enable remote operation of that appliance. The bar code label contains a data pattern, which identifies the type of appliance and the remote control encoding format to which the appliance responds. If the remote control unit detects a recognizable bar code pattern during the period that the bar code reader is enabled, then the remote control unit proceeds to analyze the identification data. If the appliance type and infrared format are supported by the remote control device, then the remote control reconfigures its programming to match the new appliance. If the device or equipment is not supported by the remote control device, then the remote control device simply remains unchanged in its previous configuration.
Another known remote control device uses a method where prior to receiving a first remote “power on” command, a remotely controlled appliance periodically emits an infra-red “squawk” signal, which encodes information used to identify the appliance. When a “power on” button is pressed on the associated remote control device, the remote control device briefly listens for such a squawk signal before sending the currently configured power on code. If such a squawk signal is detected, the remote control device reconfigures itself to enable operation of the appliance and then sends the correct power on signal to the appliance, prompting the appliance to stop sending further “squawk” signals.
However, the appliance barcode remote control device and the ‘squawk’ signal remote control device both require that an associated remote control device have prior knowledge of all appliances that can be supported by the remote control device. Any reprogramming of the associated remote control device needs to be performed using one of the methods described above. Additionally, such remote control devices may not be able to be used with existing appliances that are not suitable configured.
Another known method for activating a remote control device to operate with a particular protocol works by configuring the remote control device in order to enter a mode where a single command is transmitted using all known protocols, one at a time. When the user of such a remote control device detects the correct response by the controlled appliance, the remote control device is instructed by a further user selection to stop probing and to send all subsequent commands using the protocol, which instigated the correct response. Such a remote control device is simple to implement, but requires the user to go through an unintuitive protocol selection process, which can also interfere with other appliances.
Still another known remote control device comprises a transparent touch sensitive surface. A control card with a printed user interface on its upper surface can be placed underneath the transparent touch sensitive surface. The remote control device switches to a different operating mode based on a physical property (e.g., a notch) of the card. While providing added versatility, this remote control device is limited to a fixed set of cards. Further, the remote control device is limited to a fixed set of protocols, which are pre-installed on the remote control device. Still further, this remote control device is limited to a predetermined fixed set of functions.
Some appliances or devices are configured to accept data from multiple remote control devices simultaneously. For example, in a multi-player game, each player can hold a remote control device, sending the same set of inputs to a single receiving appliance. The remote control devices generally distinguish themselves from each other by means of a user identifier, which is included as part of each message that is transmitted from the remote control device to the receiving device. User identifiers on such remote control devices are typically changed by means of a switch located somewhere on the surface of the remote control device. The switch is capable of being set to one of two or more settings.
An infrared remote control device must store enough characteristics of an infrared protocol to be able to faithfully reproduce the protocol at some later time. The required information may be stored on an individual button-by-button basis, or as part of a global structure referenced by individual buttons. In the case of a global protocol structure, each button has some associated information to be used in conjunction with the global information in order to produce a unique code. One known method of representing protocol information utilizes a series of instructions, either executed directly or interpreted by a program being executed on a microprocessor. Another known method of representing protocol information counts the number of pulses during each ON period, and records the number of pulses together with the duration of each OFF period. These periods are then grouped into categories having similar sizes, and stored as a sequence of category identifiers.
In each of the infrared remote control devices described above, the amount of data required to be stored on the remote control device for every possible protocol can be large. Some remote control devices are configured to compress the data, for example, by forming categories during a learning process. However, inaccuracies can result during this process which can prevent a protocol from being faithfully reproduced later.
One known remote control device maintains a range of protocols, which are represented by means of a set of properties. Some properties, specifically bit patterns and data formats, are expressed as pointers to one of a finite set of data structures that define these values. While such a remote control device generally provides a compressed format for storing the protocol data, a finite number of bit pattern types and data formats are supported. Thus, a new protocol depends on a compatible format being found.
Control cards, which can be used with remote control devices, as discussed above, often include some form of readable storage means such as a magnetic strip, an optical code (e.g. a bar code) or an on-board memory chip, for storing data (e.g. a personal identification number) associated with the card. Such control cards can be generically referred to as memory cards. However, control cards including a storage means in the form of an on-board memory chip are generally referred to as ‘smart cards’. The data stored in the storage means is generally read by some form of terminal device, which includes a set of electrical contacts, for example.
Some smart cards include a microprocessor integrally formed within the smart card. These smart cards are generally referred to as microprocessor or central processing unit (CPU) cards.
There are several existing smart card systems, which utilize CPU smart cards including a user interface. One of these existing smart card systems utilizes a reader device including a transparent touch panel positioned above the CPU card so that user interface elements printed on a surface of the smart card are visible underneath the transparent touch screen. The reader device is configured to determine the position of a touch on the transparent panel and use data structure information stored within a memory of the card to determine which user interface elements have been pressed. The reader device then sends a data string associated with the selected user interface elements to a remote application.
In one such existing smart card system, the reader device contains an infrared transmitter, which is used to transmit information received from the card to a set-top box connected to a service provider. Due to the large variety of infrared set-top boxes available, which do not necessarily use the same data transmission protocol, each card reader device must be pre-configured to match a certain set-top box. Once such a reader has been configured for one particular set top box, the software code (i.e.,firmware) resident on the reader cannot be easily changed.
In addition, in order to fully utilize the functionality of a particular smart card, software applications must be created or modified in order to recognize the format of messages sent by a reader device associated with the particular card. The message format is typically implemented above the infra-red protocol layer. None of the existing smart card systems include a mechanism which is able to emulate conventional input devices such as a keyboard or mice, and which would enable a smart card used with such a system to work with existing applications without significant modification to the application.
The reader device of the existing smart card system discussed above, while containing an infrared transmitter, is unable to control the multitude of other appliances that use infrared remote control devices. Thus, the smart card reader device is merely another remote control device to be added to the pile of conventional remote control devices which now exists in most households. This is despite the growing trend towards universal remote control devices as described above.
Finally, the reader device described above, while having the potential to operate in a variety of different modes, with different settings, does not provide a mechanism for operating modes and settings to be reconfigured as necessary by a user of the existing smart card system.
Accordingly, the reader device discussed above is generally limited in application to a predetermined number of pre-installed data transmission protocols. These data transmission protocols cannot be easily changed and additional protocols cannot be easily added. Further, the functionality of the reader device discussed above cannot be easily changed. Thus, a need clearly exists for a reader device, which is capable of transmitting data using one of several protocols, where the protocols can be easily changed and additional protocols can be easily added. Further, a need clearly exists for a reader device, the functionality of which can be easily changed in order to allow the control of many different electronic appliances.